#include <stdio.h>
#include <unistd.h>

int main(int argc, char const *argv[])
{
    /* code */

    pid_t cpid;
    cpid = fork(); // 创建子进程


    if (cpid == -1) {
        perror("fork(): ");
        return -1;
    } else if (cpid == 0) {
        // 父进程返回给子进程的pid为0
        printf("child process A task \n");
    } else if (cpid > 0) {
        printf("parent process task \n");
        // 创建子进程
        cpid = fork();
        if (cpid == -1) {
            perror("parent fork() error ");
        } else if (cpid == 0) {
            printf("child process B task \n");
        } 
    }

    // 子进程也会打印 
    printf("pid : %d \n", getpid()); // 打印当前进程的id 父进程 和子进程的执行顺序不一定的
    printf("hello world .\n");
    return 0;
}
